﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;
using System.Xml.Linq;
using System.Collections.Generic;

public partial class GestionarConvenios_FrModConvenio : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["nit"] != null)
            Response.Redirect("/SUEWebSite/Error.aspx");
        else if (Session["nomUsr"] != null)
        {
            List<String> Permisos = (List<String>)Session["Permisos"];

            if (!Permisos.Contains(System.IO.Path.GetFileName(HttpContext.Current.Request.FilePath)))
                Response.Redirect("/SUEWebSite/Error.aspx");

        }
        else Response.Redirect("/SUEWebSite/Principal.aspx");

        if (!Page.IsPostBack)
        {
            deshabilitar();
            if (Request.QueryString["idConvenio"] != null)
            {
                try
                {
                    int idConvenio = Convert.ToInt32(Request.QueryString["idConvenio"].ToString());
                    CargarValores(idConvenio);
                }
                catch
                {
                    //no se envio un entero.
                }
            }

        }


    }
    /// <summary>
    /// se quitan las fechas del formulario que no correspondan al mes actual   
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void CalendarFechaInicio_DayRender(object sender, DayRenderEventArgs e)
    {
        if (e.Day.IsOtherMonth)
        {
            e.Cell.Text = "";

        }
    }
    protected void ButtonGuardar_Click(object sender, EventArgs e)
    {
        int Legalizado = 0;
        if (CalendarFechaInicio.SelectedDate < CalendarFechaLimite.SelectedDate)
        {
            string FechaInicio = CalendarFechaInicio.SelectedDate.ToShortDateString();
            string FechaLimite = CalendarFechaLimite.SelectedDate.ToShortDateString();
            string FechaFirma = CalendarFechaFirma.SelectedDate.ToShortDateString();
            if (CheckBoxLegalizado.Checked)
            {
                Legalizado = 1;
            }

            if ((FileUploadConvenio.PostedFile != null) && (FileUploadConvenio.PostedFile.ContentLength > 0))
            {
                string fn = System.IO.Path.GetFileName(FileUploadConvenio.PostedFile.FileName);
                DirectoryInfo DIR = new DirectoryInfo(Server.MapPath("Convenios") + "\\" + NitEmpresa.Text + "\\" + Request.QueryString["idConvenio"].ToString());
                if (!DIR.Exists)
                    DIR.Create();
                string SaveLocation = Server.MapPath("Convenios") + "\\" + NitEmpresa.Text + "\\" + Request.QueryString["idConvenio"].ToString() + "\\" + fn;

                try
                {
                    BorrarArchivosConvenio();
                    FileUploadConvenio.PostedFile.SaveAs(SaveLocation);
                    LabelNotificacion.Text = "Archivo subido con éxito";

                }
                catch
                {
                    LabelNotificacion.Text = "No se pudo subir el archivo";
                }
                finally
                {

                }

            }

            else
                LabelNotificacion.Text = "Seleccione un archivo";
            GestionarConvenios gcm = new GestionarConvenios();
            double sueldo = Convert.ToDouble(TextBoxSueldo.Text);
            int idConvenio = Convert.ToInt32(Request.QueryString["IdConvenio"].ToString());//lo convierto a int
            gcm.ModConvenio(TextBoxIdentificacionConvenio.Text, CalendarFechaInicio.SelectedDate.ToShortDateString(), CalendarFechaLimite.SelectedDate.ToShortDateString(), TextBoxObservaciones.Text, DropDownListTipoConvenio.SelectedItem.Value, DropDownListEstado.SelectedItem.Value, sueldo, TextBoxRepresentanteLegal.Text, TextBoxDuracionMeses.Text + " M " + TextBoxDuracionDias.Text + " D ", Legalizado, FechaFirma, idConvenio);
            ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('Convenio modificado con éxito <br /><center><a href=\"FrConsConvenios.aspx\"><img src=\"../images/ok2.png\"/></a></center>');", true);
        }
        else
            ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.error('La fecha límite no debe ser menor a la inicial', {timeout: 3 , showClose: false });", true);
    }

    protected void ButtonModificar_Click(object sender, EventArgs e)//este boton activa el formulario, pero noe sta sirviendo el perro ese no sale nada se pega 
    {

        //int idConvenio = Convert.ToInt32(Request.QueryString["IdConvenio"].ToString());
        //CargarValores(idConvenio);
        TextBoxIdentificacionConvenio.Enabled = true;
        DropDownListTipoConvenio.Enabled = true;
        TextBoxObservaciones.Enabled = true;
        FileUploadConvenio.Enabled = true;
        CalendarFechaInicio.Enabled = true;
        CalendarFechaLimite.Enabled = true;
        DropDownListEstado.Enabled = true;
        ButtonGuardar.Enabled = true;
        ButtonGuardar0.Enabled = true;
        TextBoxDuracionMeses.Enabled = true;
        TextBoxDuracionDias.Enabled = true;
        TextBoxRepresentanteLegal.Enabled = true;
        TextBoxSueldo.Enabled = true;

        ButtonModificar.Enabled = false;
        ButtonModificar0.Enabled = false;
    }
    protected void CargarValores(int idConvenio)
    {
        try
        {
            GestionarConvenios gc = new GestionarConvenios();
            DataTable convenio = gc.ObtConvenioEspecifico(idConvenio);
            if (convenio.Rows.Count != 0)
            {
                NitEmpresa.Text = convenio.Rows[0]["Empresa_nit"].ToString();
                TextBoxIdentificacionConvenio.Text = convenio.Rows[0]["nombreConvenio"].ToString();
                DropDownListTipoConvenio.SelectedValue = convenio.Rows[0]["tipoConvenio"].ToString();
                TextBoxObservaciones.Text = convenio.Rows[0]["observacionesConvenio"].ToString();

                CalendarFechaInicio.SelectedDate = Convert.ToDateTime(convenio.Rows[0]["fechaInicio"].ToString());
                CalendarFechaLimite.SelectedDate = Convert.ToDateTime(convenio.Rows[0]["fechaVencimiento"].ToString());
                CalendarFechaFirma.SelectedDate = Convert.ToDateTime(convenio.Rows[0]["fechaFirma"].ToString());

                if (convenio.Rows[0]["Legalizado"].ToString().Equals("1"))
                    CheckBoxLegalizado.Checked = true;
                else
                    CheckBoxLegalizado.Checked = false;

                DropDownListEstado.SelectedValue = convenio.Rows[0]["estadoConvenio"].ToString();
                string duracion = convenio.Rows[0]["tiempoDuracion"].ToString();
                duracion = duracion.Replace("M", "");
                duracion = duracion.Replace("D", "");
                string[] dur = duracion.Split(' ');
                TextBoxDuracionMeses.Text = dur[0];
                TextBoxDuracionDias.Text = dur[2];
                //string mes = duracion.Substring(
                //DropDownListDuracion.SelectedValue = 


                TextBoxSueldo.Text = convenio.Rows[0]["sueldoConvenido"].ToString();
                TextBoxRepresentanteLegal.Text = convenio.Rows[0]["representanteLegal"].ToString();
                CargarLinksDescargaConvenios();
            }
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.error('No se puedo cargar la información!', {timeout: 4 , showClose: false });", true);
        }
    }

    protected void deshabilitar()
    {
        TextBoxIdentificacionConvenio.Enabled = false;
        DropDownListTipoConvenio.Enabled = false;
        TextBoxObservaciones.Enabled = false;
        FileUploadConvenio.Enabled = false;
        CalendarFechaInicio.Enabled = false;
        CalendarFechaLimite.Enabled = false;
        DropDownListEstado.Enabled = false;
        TextBoxDuracionMeses.Enabled = false;
        TextBoxDuracionDias.Enabled = false;
        TextBoxRepresentanteLegal.Enabled = false;
        TextBoxSueldo.Enabled = false;
        ButtonGuardar.Enabled = false;
        ButtonGuardar0.Enabled = false;
    }

    protected void CargarLinksDescargaConvenios()
    {
        string[] files = Directory.GetFiles(Server.MapPath("Convenios") + "\\" + NitEmpresa.Text + "\\" + Request.QueryString["IdConvenio"].ToString());
        if (files.Length > 0)
        {
            foreach (string file in files)
            {
                FileInfo finfo = new FileInfo(file);


                HyperLinkDescargar.NavigateUrl = "Convenios" + "/" + NitEmpresa.Text + "/" + Request.QueryString["IdConvenio"].ToString() + "/" + finfo.Name;
                HyperLinkDescargar.Visible = true;

            }

        }
    }

    private void BorrarArchivosConvenio()
    {
        string[] files = Directory.GetFiles(Server.MapPath("Convenios") + "\\" + NitEmpresa.Text + "\\" + Request.QueryString["IdConvenio"].ToString());
        if (files.Length > 0)
        {
            foreach (string file in files)
                File.Delete(file);
        }
    }

    protected void CalendarFechaFirma_SelectionChanged(object sender, DayRenderEventArgs e)
    {

        if (e.Day.IsOtherMonth)
        {
            e.Cell.Text = "";

        }
    }
    protected void ButtonCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("");
    }
}
